home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / pc / LOGIC Apple II 5.25" Library - DOS Part 3 / DOS069.dsk / HI Q.bas < prev    next >
BASIC Source File  |  2012-02-16  |  5KB  |  161 lines

  1. 1  CALL  -936
  2. 3  POKE  33,39
  3. 4  POKE  34,0 
  4. 5  CALL  -936
  5. 7  PRINT : PRINT : PRINT : PRINT : PRINT : PRINT :
  6. 10  PRINT  TAB( 15);"HI-Q"       
  7. 15  PRINT 
  8. 20  PRINT  TAB( 5 );"BOB STEVENS  DALLAS TEXAS"
  9. 30  PRINT : PRINT : PRINT 
  10. 35  PRINT : INPUT "INSTRUCTIONS";Q$: GOSUB  285
  11. 36  IF  Q$ = "NO"   OR  Q$ = "N"   THEN  55
  12. 37  PRINT : PRINT : PRINT 
  13. 38  PRINT "THE OBJECT OF HI-Q IS TO REMOVE ALL": PRINT 
  14. 39  PRINT "32 PEGS, OR AS MANY AS POSSIBLE, BY": PRINT 
  15. 40  PRINT "JUMPING INTO AN EMPTY HOLE...": PRINT 
  16. 41  PRINT "THE JUMPED PEG IS THEN REMOVED.": PRINT 
  17. 43  PRINT "TO SAVE TYPING TIME, A COMPRESSED": PRINT 
  18. 44  PRINT "VERSION OF THE GAME BOARD WILL BE USED": PRINT 
  19. 45  PRINT "DURING PLAY. REFER TO THE ONE ON THE": PRINT 
  20. 46  PRINT "RIGHT SIDE FOR PEG NUMBERS": PRINT : PRINT 
  21. 47  PRINT : INPUT  "READY";T$
  22. 48  IF  T$ = "YES"   OR  T$ = "Y"  THEN  55
  23. 49  PRINT "WELL, WHEN YOU'RE READY JUST TYPE 'YES'": GOTO 47 
  24. 55  PRINT : PRINT   "HERE IS THE BOARD:"
  25. 60  PRINT "                         !  !  !"
  26. 70  PRINT "                        13 14 15": PRINT 
  27. 80  PRINT "                         !  !  !"
  28. 90  PRINT "                        22 23 24": PRINT 
  29. 100  PRINT "                   !  !  !  !  !  !  !"
  30. 110  PRINT "                  29 30 31 32 33 34 35": PRINT 
  31. 120  PRINT "                   !  !  !  !  !  !  !"
  32. 130  PRINT "                  38 39 40 41 42 43 44": PRINT 
  33. 140  PRINT "                   !  !  !  !  !  !  !"
  34. 150  PRINT "                  47 48 49 50 51 52 53": PRINT 
  35. 160  PRINT "                         !  !  !"
  36. 170  PRINT "                        58 59 60": PRINT 
  37. 180  PRINT "                         !  !  !"
  38. 190  PRINT "                        67 68 69": PRINT 
  39. 240  POKE  33,17
  40. 241  POKE  34,8
  41. 280  REM  ***       SET UP BOARD 
  42. 281  DIM  B(70),T(9,9)
  43. 284  GOTO  287
  44. 285  CALL  -936
  45. 286  RETURN 
  46. 287  GOSUB  285
  47. 288  PRINT "LET'S BEGIN"
  48. 290  FOR  R = 1  TO  9
  49. 300  FOR  C = 1  TO  9
  50. 310  IF  (R -4) *(R -5) *(R -6) = 0   THEN  400
  51. 320  IF  (C -4) *(C -5) *(C -6) = 0   THEN  400
  52. 350 T(R,C) =  -5
  53. 360  GOTO  500
  54. 400  IF  (R -1) *(C -1) *(R -9) *(C -9) = 0   THEN 350
  55. 420 T(R,C) = 5
  56. 500  NEXT  C
  57. 600  NEXT  R
  58. 650 T(5,5) = 0: GOSUB  5000
  59. 700  REM  *** INPUT MOVE AND CHECK LEGALITY 
  60. 750  FOR  W = 1  TO  33
  61. 770  READ  M
  62. 790  DATA  13,14,15,22,23,24,29,30,31,32,33,34,35,38,39,40,41
  63. 810  DATA  42,43,44,47,48,49,50,51,52,53,58,59,60,67,68,69
  64. 830 B(M) =  -7: NEXT  W
  65. 860 B(41) =  -3
  66. 1000  INPUT  "MOVE WHICH PIECE";Z
  67. 1100  IF  B(Z) =  -7   THEN  1400
  68. 1200  PRINT "ILLEGAL MOVE, TRY AGAIN...": GOTO  1000
  69. 1400  INPUT  "TO WHERE"; P
  70. 1500  IF  B(P) = 0   THEN  1200
  71. 1530  IF  B(P) =  -7   THEN  1200
  72. 1560  IF  Z = P   THEN  1000
  73. 1600  IF  ((Z +P)/2) =  INT((Z +P)/2)   THEN  1800
  74. 1615  PRINT : INPUT "PLAY AGAIN (YES OR NO)";A$
  75. 1617  IF  A$ = "NO"  OR  A$ = "N"   THEN  20000
  76. 1700  GOTO  1200
  77. 1800  IF  ( ABS(Z -P) -2) *( ABS(Z -P) -18) < >0   THEN  1200
  78. 1900  GOSUB 10000
  79. 2000  GOSUB  5000
  80. 2100  GOSUB  15000
  81. 2200  GOTO  1000
  82. 5000  REM  ***       BOARD
  83. 5100  FOR  X = 1  TO  9
  84. 5200  FOR  Y = 1  TO  9
  85. 5250  IF  (X -1) *(X -9) *(Y -1) *(Y -9) = 0   THEN  5500
  86. 5300  IF  (X -4) *(X -5) *(X -6) = 0   THEN  5700
  87. 5400  IF  (Y -4) *(Y -5) *(Y -6) = 0   THEN  5700
  88. 5500  REM 
  89. 5600  GOTO  6100
  90. 5700  IF  T(X,Y) < >5   THEN  6000
  91. 5800  PRINT   TAB( Y *1);"+";
  92. 5900  GOTO  6100
  93. 6000  PRINT  TAB( Y *1);"O";
  94. 6100  REM 
  95. 6150  NEXT  Y
  96. 6200  PRINT 
  97. 6300  NEXT  X
  98. 6400  RETURN 
  99. 10000  GOSUB  285
  100. 10050 C = 1:  FOR  X = 1  TO  9
  101. 10200  FOR  Y = 1  TO  9
  102. 10300  IF  C < >Z   THEN  12200
  103. 10400  IF  C +2 < >P   THEN  10800
  104. 10450  IF  T(X,Y +1) = 0   THEN  1200
  105. 10500 T(X,Y +2) = 5
  106. 10600 T(X,Y +1) = 0: B(C +1) =  -3
  107. 10700  GOTO  12000
  108. 10800  IF  C +18 < >P   THEN  11300
  109. 10850  IF  T(X +1,Y) = 0   THEN  1200
  110. 10900 T(X +2,Y) = 5: T(X +1,Y) = 0: B(C +9) =  -3
  111. 11200  GOTO  12000
  112. 11300  IF  C -2 < >P   THEN  11700
  113. 11350  IF  T(X,Y -1) = 0   THEN  1200
  114. 11400 T(X,Y -2) = 5: T(X,Y -1) = 0: B(C -1) =  -3
  115. 11600  GOTO  12000
  116. 11700  IF  C -18 < >P   THEN  12200
  117. 11750  IF  T(X -1,Y) = 0   THEN  1200
  118. 11800 T(X -2,Y) = 5: T(X -1,Y) = 0: B(C -9) =  -3
  119. 12000 B(Z) =  -3: B(P) =  -7
  120. 12100 T(X,Y) = 0:  GOTO  12400
  121. 12200 C = C +1
  122. 12250  NEXT  Y
  123. 12300  NEXT  X
  124. 12400  RETURN 
  125. 15000  REM   *** CHECK IF GAME IS OVER
  126. 15050 F = 0
  127. 15100  FOR  R = 2  TO  8
  128. 15200  FOR  C = 2  TO  8
  129. 15300  IF  T(R,C) < >5   THEN  15800  
  130. 15350 F = F +1
  131. 15400  FOR  A = R -1  TO  R +1
  132. 15450 T = 0
  133. 15500  FOR  B = C -1  TO  C +1
  134. 15600 T = T +T(A,B)
  135. 15610  NEXT  B
  136. 15640  IF  T < >10   THEN  15670
  137. 15650  IF  T(A,C) < >0   THEN  16300
  138. 15670  NEXT  A
  139. 15680  FOR  X = C -1  TO  C +1
  140. 15690 T = 0
  141. 15700  FOR  Y = R -1  TO  R +1
  142. 15710 T = T +T(X,Y)
  143. 15720  NEXT  Y
  144. 15730  IF  T < >10   THEN  15750
  145. 15740  IF  T(R,X) < >0   THEN  16300
  146. 15750  NEXT  X
  147. 15800  NEXT  C
  148. 15900  NEXT  R
  149. 16000  REM   *** GAME IS OVER 
  150. 16050  PRINT "THE GAME IS OVER."
  151. 16100  PRINT "YOU HAD";F;"PIECES REMAINING."
  152. 16105  TEXT 
  153. 16110  IF  F < >1   THEN  16150
  154. 16120  PRINT "BRAVO! YOU MADE A PERFECT SCORE!"
  155. 16150  PRINT : INPUT "PLAY AGAIN (YES OR NO)";A$
  156. 16170  IF  A$ = "NO"  OR  A$ = "N"   THEN  20000 
  157. 16180  RESTORE :  GOTO  280
  158. 16200  STOP 
  159. 16300  RETURN 
  160. 20000  PRINT : PRINT  "SO LONG FOR NOW": PRINT 
  161. 20100  END